﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//复杂度分析
//时间复杂度：两个循环O（n2）
//空间复杂度：O（1）
//稳定性：不稳定
class SolSelect
{

    public void SelectSort(int[] nums)
    {
        int maxIndex ;
        //先循环，找最大的，然后交换的末尾，再继续找
        for(int i= nums.Length-1; i>=0; i--) {
            maxIndex = i;
            for(int j= i; j>=0; j--)
            {
                if (nums[j] > nums[maxIndex]) {
                    maxIndex = j;  }

            }
            swap(nums, maxIndex,i);
        
        }

    }

    private void swap(int[] nums, int maxIndex, int i)
    {
        int temp= nums[maxIndex];
        nums[maxIndex]= nums[i];
        nums[i]= temp;
    }
}
class ProgramSelect
{
    static void MainSelect(string[] args)
    {

        int[] nums = { 53, 17, 78, 09, 45, 65, 87, 32 };

        SolSelect  sol=new SolSelect();
        sol.SelectSort(nums) ;


        for(int i = 0; i < nums.Length; i++) {
            Console.WriteLine(nums[i]);
        }
        Console.ReadKey(); 




    }
}
